Monitoring systems have been developed for displaying waveforms that represent the manner in which a data source varies over time. For example, monitoring systems have been developed that utilize a display device such as a cathode ray tube (CRT) for displaying waveforms representing the manner in which various physiological conditions of a medical patient vary over time. More specifically, monitoring systems have been developed for displaying waveforms indicating the manner in which a patient's blood pressure varies over time, as well as for displaying a patient's electrocardiogram.
An electrocardiogram (hereafter ECG) is a waveform which indicate the manner in which a voltage measured across a patient's heart varies with time. Heart voltages can change rapidly and therefore, typical monitoring systems for generating an ECG record a data sample indicating the heart's voltage every 2 ms. In this manner, the monitoring system samples an analog voltage signal generated by the patient and converts signal into digital data that is recorded as a plurality of discrete data samples. In order to accurately represent the manner in which the patient's heart condition varies over time, every recorded data sample need not be displayed. Therefore, decimation algorithms have been developed that select a subset of the recorded data samples which are representative of the way in which the patient's heart condition varies over a given period of time. In this manner, the number of data samples displayed is reduced from the number of data samples received from the data source.
Historically, prior art ECG monitoring systems utilize display screens having one hundred twenty-five pixels per inch and update one inch of the display screen every second. Therefore, for ECG data that is sampled at 500 Hz, the decimation algorithms typically reduce the number of data samples received by a factor of four prior to display. The prior art ECG monitoring systems typically update the waveform displayed on the display device every 32 ms. During each 32 ms time period between waveform updates, sixteen data samples are received from the patient. The decimation algorithms typically reduce the sixteen data samples during each 32 ms update period to four representative data samples for display on the display device. Therefore, prior art ECG monitoring systems typically update the waveform with four data samples (represented by four pixels) every 32 ms.
As can be seen from the foregoing, prior art ECG monitoring systems typically update the display device on a frequent basis (every 32 ms), and consistently update the waveform at this frequency within a small margin of error (e.g. .+-.2 ms). In this manner, these systems essentially maintain a synchronized lock-step relationship with the data source with little latency or buffering so that when a sample of data is received, it is quickly displayed.
Monitoring systems typically utilize a fixed wave to represent the time-varying characteristics of the data source. FIGS. 1(a) and 1(b) illustrate the manner in which a fixed wave is displayed on a display device 3. An erase bar 5 shown in dotted line moves across the display device 3 in a left to right direction and separates the waveform into a lefthand portion 4 and a righthand portion 6. As new data samples are received and used as a basis for updating the display device, the erase bar 5 moves across the display device, erasing the previously displayed portion of the waveform and updating the waveform to represent the most recently received data samples. When the erase bar 5 reaches the right side of the display device 3, it wraps around and returns to the left side.
To update the waveform with the above-described frequency and consistency, prior art monitoring systems typically use proprietary real-time operating systems that support short process swap and interrupt latencies, as well as regular and precise scheduling of tasks. The use of real-time operating systems enables the prior art monitoring systems to operate in a lock-step manner whereby the waveform is updated at consistent intervals, and with the same amount of data for each update. As a result, the erase bar moves across the display screen with a constant velocity. Maintaining the movement of the erase bar at a constant velocity is desirable because if the erase bar moved across the screen in a jerky manner, it could distract the user and would be aesthetically unpleasing. In order to operate in the above-described lock-step manner, interrupt requests for updating the waveform are given high priority so that they are promptly serviced by the operating system. As a result, the processor is repeatedly interrupted from other processing tasks in order to update the waveform.
It is desirable to develop a real-time monitoring system that includes a waveform update scheduler which operates in a manner that does not require that interrupts for updating the waveform be assigned high priority.
It is also desirable to develop a monitoring system that can be implemented with industry standard hardware and software, and with an industry standard operating system. However, some industry standard operating systems such as UNIX (UNIX is a registered trademark of AT&T in the USA and other countries) do not operate on a real-time basis because they do not support short process swap and interrupt latencies, or precise task scheduling. Therefore, the above-described monitoring systems that update the waveform by maintaining a lock-step relationship with the data source could not be implemented on a system having a non-real time operating system such as UNIX. Since non-real time operating systems do not support the scheduling of regular and precise interrupts, a monitoring system employing such an operating system could not ensure that the display device would be regularly updated when requested, because delays would be experienced in servicing some interrupts, resulting in delays between waveform updates. As a result, the waveform would not be smoothly updated because the erase bar would move in a jerky manner and would not maintain a constant velocity.
It is also desirable to develop a method of scheduling waveform updates on a real-time monitoring system so that interrupts for updating the waveform are not required to be assigned high priority, thereby providing flexibility for the system to process other high priority tasks
In addition to updating waveforms on a regular and consistent basis, prior art monitoring systems also employ antialiasing techniques to draw the waveforms in a smooth manner. When waveforms are drawn on a display device, the waveform is drawn in a foreground color and the remainder of the screen is drawn in a background color that is sufficiently different from the foreground color so that the waveform can be seen. If the screen is drawn using only two colors, each pixel on the display screen must necessarily be assigned to either the foreground or background color. As a result, an undesirable effect known as aliasing occurs wherein the waveform, as shown for example in FIG. 2, has a stair-step or jagged look. Antialiasing techniques have been developed to reduce the jagged look of the waveform by using colors intermediate to the foreground and background colors to soften the waveform's transition edges. However, because monitoring systems have typically been implemented using proprietary hardware and software, antialiasing techniques have not been developed for use with standard graphics tool sets, such as the X Window System.